package org.colswe.testingProject.entity;

import java.io.Serializable;
import javax.persistence.*;

/**
 * Esta clase entidad es usada para almacenar la información correspondiente a
 * las opciones a las que pueden acceder los usuarios.
 *
 * @author Leonardo Bohórquez
 */
@Entity
public class SystemOptions implements Serializable {

    /**
     * Constante 65.
     */
    private static final int SEIS5 = 65;
    /**
     * Constante false.
     */
    private static final boolean FALSE = false;
    /**
     * Constante true.
     */
    private static final boolean TRUE = true;
    /**
     * Id de las opciones.
     */
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    /**
     * Nombre de la opción.
     */
    @Column(length = SEIS5, nullable = FALSE, unique = TRUE)
    private String name;

    /**
     * Constructor por defecto de la clase SystemOptions.
     */
    public SystemOptions() {
    }

    /**
     * Costructor que recibe los parámetros para inicializar la clase
     * SystemOptions.
     *
     * @param name Nombre de la opción
     */
    public SystemOptions(String name) {
        this.name = name;
    }

    /**
     * Función que permite obtener el id de la opción.
     *
     * @return Id de la opción
     */
    public Long getId() {
        return id;
    }

    /**
     * Método que permite establecer el Id de la opción.
     *
     * @param id Id de la opción
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * Función que permite obtener el nombre de la opción.
     *
     * @return Nombre de la opción
     */
    public String getName() {
        return name;
    }

    /**
     * Método que permite establecer el nombre de la opción.
     *
     * @param name Nombre de la opción
     */
    public void setName(String name) {
        this.name = name;
    }
}
